#!/bin/bash

# 提示用户输入Swap大小（MB为单位）
echo "请输入您想创建的Swap文件大小（MB为单位，例如：8192 表示 8GB）:"
read swap_size

# 检查输入是否为数字
if ! [[ "$swap_size" =~ ^[0-9]+$ ]]; then
    echo "错误：请输入一个有效的数字"
    exit 1
fi

# 创建Swap文件并设置大小为用户指定的大小
echo "正在创建 ${swap_size}MB 的Swap文件..."
fallocate -l ${swap_size}M /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

# 确保重启后自动挂载Swap文件
echo "/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab

# 设置swappiness为80并持久化
echo "设置swappiness为80..."
sudo sysctl vm.swappiness=80
sudo sed -i '/vm.swappiness/d' /etc/sysctl.conf
echo "vm.swappiness=80" | sudo tee -a /etc/sysctl.conf

# 输出当前Swap状态
echo "Swap创建完成！当前状态:"
swapon --show
free -h